package top.continew.admin.generator.service;

import top.continew.admin.generator.model.entity.ProvinceLeadersDO;
import top.continew.admin.generator.model.entity.TaskTodoDO;
import top.continew.starter.data.mp.service.IService;
import top.continew.starter.extension.crud.model.resp.IdResp;
import top.continew.starter.extension.crud.service.BaseService;
import top.continew.admin.generator.model.query.ProvinceLeadersQuery;
import top.continew.admin.generator.model.req.ProvinceLeadersReq;
import top.continew.admin.generator.model.resp.ProvinceLeadersDetailResp;
import top.continew.admin.generator.model.resp.ProvinceLeadersResp;
import top.continew.starter.extension.crud.model.resp.PageResp;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import top.continew.admin.system.model.req.OptionReq;

import java.util.List;

/**
 * 省区负责人业务接口
 *
 * @author jiangjun
 * @since 2025/06/24 10:40
 */
public interface ProvinceLeadersService extends BaseService<ProvinceLeadersResp, ProvinceLeadersDetailResp, ProvinceLeadersQuery, ProvinceLeadersReq> , IService<ProvinceLeadersDO> {
    IdResp<Long> save(ProvinceLeadersReq req);

    void updateCustom(ProvinceLeadersReq req, Long id);
    
    /**
     * 分页查询省区负责人列表（包含认证状态）
     */
    PageResp<ProvinceLeadersResp> pageWithAuth(ProvinceLeadersQuery query, Page<ProvinceLeadersDO> page);

    /**
     * 获取所有负责人列表
     * @param keyword 搜索关键词
     * @return 负责人列表
     */
    List<OptionReq> getAllLeaders(String keyword);
}